package org.soderiakelvy.model.service;

import java.util.List;


import org.soderiakelvy.model.domain.FrioCalorVO;
import org.soderiakelvy.model.domain.PackVO;
import org.soderiakelvy.model.domain.ProductoVO;
import org.soderiakelvy.model.domain.TipoProductoVO;

public interface ProductoServicio{
	//TODO todo los metodos para hacer abm
    String insertProductoVO(ProductoVO producto);
    String updateProductoVO(ProductoVO producto);
    String deleteProductoVO(ProductoVO producto);
    ProductoVO getProductoById (long productoId);
    
    String insertFrioCalorVO(FrioCalorVO friocalor);
    String updateFrioCalorVO(FrioCalorVO friocalor);
    String deleteFrioCalorVO(FrioCalorVO friocalor);
    FrioCalorVO getFrioCalorByNumSerie(String numeroSerie);
    Boolean existeNumeroSerieFrioCalor(String numeroSerie);
    List<FrioCalorVO> getFrioCalorDeAguaDeRed();
    
    String insertTipoProductoVO(TipoProductoVO tipoProducto);
    String deleteTipoProductoVO(TipoProductoVO tipoProducto);
    String updateTipoProductoVO(TipoProductoVO tipoProducto);
    TipoProductoVO getTipoProductoById (long tipoProductoId);
    
    String insertPackVO(PackVO pack);
    String updatePackVO(PackVO pack);
    String deletePackVO(PackVO pack);
    PackVO getPackById (long packId);
    Boolean existeNombrePack(String nombre);
    
    //TODO todo los metodos para listar
    List<ProductoVO> getProductosPorTipo(TipoProductoVO tipoProducto);
    List<ProductoVO> getProductos();
    List<ProductoVO> getProductosConPrecio(long tipoClienteId);
    
    List<TipoProductoVO> getTiposDeProductos();
    
    List<FrioCalorVO> getEquiposFrioCalor();
    List<FrioCalorVO> getEquiposFrioCalorByTipoAndEstado(String tipo, String estado);
    List<FrioCalorVO> buscarFrioCalorPorParametro(FrioCalorVO frioCalor);
    List<FrioCalorVO> getEquiposFrioCalorByFrioCalorTipoEstado(FrioCalorVO frioCalor, String tipo, String estado);
    
    List<PackVO> getPacks();
    
    //TODO Metodos de Frio Calor
    
    boolean verificarAltaModificacionFrioCalor(String numeroDeSerie);
}
